package com.zhiletu.collect.config;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.apache.log4j.Logger;

public final class CollectConfig {
	/**
	 * 采集配置文件
	 */
	private static final String CONFIG_FILE = "/config.properties";

	// 读取项目资源文件信息
	private static final Properties prop = new Properties();

	/**
	 * 日志 Logger
	 */
	private static Logger log = Logger.getLogger(CollectConfig.class);

	static {
		InputStream input = null;
		try {
			input = CollectConfig.class.getResourceAsStream(CONFIG_FILE);
			prop.load(input);
		}
		catch (IOException ioe) {
			String message = "读取config.properties文件时发生错误>>>:";
			log.error(message, ioe);
			throw new RuntimeException(message, ioe);
		}
		finally {
			try {
				if (input != null) {
					input.close();
				}
			}
			catch (Exception e) {

			}
		}
	}

	/**
	 * 无参构造函数.
	 */
	private CollectConfig() {

	}

	/**
	 * 取得配置文件属性值.
	 *
	 * @param key
	 *            属性名
	 * @return 属性值
	 */
	public static String getProperty(String key) {

		return prop.getProperty(key);
	}

	/**
	 * 取得配置文件属性值.
	 *
	 * @param key
	 *            属性名
	 * @param defaultValue
	 *            默认属性值。如果属性值为NULL时，则返回此值
	 * @return 属性值
	 */
	public static String getProperty(String key, String defaultValue) {
		String value = prop.getProperty(key);

		return value == null ? defaultValue : value;
	}

	/** 获取采集服务器ip（默认是数据库ip）*/
	public static String getIp() {
		return CollectConfig.getProperty("collect_server_ip");
	}

	/** 获取采集服务器数据库端口*/
	public static String getPort() {
		return CollectConfig.getProperty("collect_db_port");
	}

	/** 获取采集服务器数据库名*/
	public static String getDBname() {
		return CollectConfig.getProperty("collect_db_name");
	}

	/** 获取采集服务器数据库用户名*/
	public static String getUsername() {
		return CollectConfig.getProperty("collect_db_username");
	}

	/** 获取采集服务器数据库密码*/
	public static String getPasswd() {
		return CollectConfig.getProperty("collect_db_passwd");
	}
}
